home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / p_aa4re / bb212src / bbmain.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-01-18  |  3.2 KB  |  95 lines

  1. (*===========================================================================*)
  2. (* Main routine                                                              *)
  3. (*                                                                           *)
  4. (*   Copyright 1988, 1989, 1991 by H. Roy Engehausen.  All rights reserved.  *)
  5. (*                                                                           *)
  6. (*===========================================================================*)
  7.  
  8. {$DEFINE DEBUG_MEMLOW}
  9.  
  10. PROCEDURE main;
  11.  
  12.   VAR
  13.     status_char : CHAR;
  14.     m_time      : LONGINT;
  15.     delay_count : BYTE;
  16.     stor_size   : WORD;
  17.     t_str       : STRING[4];
  18.     tcb_place   : tcb_ptr;
  19.  
  20.   BEGIN;
  21.  
  22.     REPEAT
  23.  
  24.       (*---------------------------------------------------------------------*)
  25.       (* Force a switch                                                      *)
  26.       (*---------------------------------------------------------------------*)
  27.  
  28.       task_switch;
  29.  
  30.       (*---------------------------------------------------------------------*)
  31.       (* Delete old tcbs                                                     *)
  32.       (*---------------------------------------------------------------------*)
  33.  
  34.       WHILE dead_tcb_list <> NIL DO
  35.         BEGIN;
  36.           tcb_place := dead_tcb_list;
  37.           dead_tcb_list := tcb_place^.next_tcb;
  38.           task_free(tcb_place);
  39.         END;
  40.  
  41.       (*---------------------------------------------------------------------*)
  42.       (* Memory check                                                        *)
  43.       (*---------------------------------------------------------------------*)
  44.  
  45.       {$IFDEF DEBUG_MEMLOW}
  46.         IF MAXAVAIL < 5000 THEN
  47.           BEGIN;
  48.             WRITELN('Memory low dump');
  49.             dump_all;
  50.          END;
  51.       {$ENDIF}
  52.  
  53.       (*---------------------------------------------------------------------*)
  54.       (* Check the time                                                      *)
  55.       (*---------------------------------------------------------------------*)
  56.  
  57.       time_check;
  58.  
  59.       (*---------------------------------------------------------------------*)
  60.       (* If delay then do something                                          *)
  61.       (*---------------------------------------------------------------------*)
  62.  
  63.       IF delay_count > 10 THEN
  64.         BEGIN;
  65.  
  66.           delay_count := 0;
  67.  
  68.           (*-----------------------------------------------------------------*)
  69.           (* Update status line                                              *)
  70.           (*-----------------------------------------------------------------*)
  71.  
  72.           IF status_window_change THEN
  73.             BEGIN;
  74.               stor_size := MEMAVAIL div 1024;
  75.               STR(stor_size, t_str);
  76.  
  77.               status_char := byte_to_char[alive_tcb_count];
  78.  
  79.               window_status_line(status_char +  ' '
  80.                                             + t_str + 'K ' + todays_date_time);
  81.  
  82.               status_window_change := FALSE;
  83.             END;
  84.  
  85.         END;
  86.  
  87.       INC(delay_count);
  88.  
  89.     UNTIL shutdown_switch; (*----- End of main loop -------------------------*)
  90.  
  91.     FOR delay_count := 1 TO 10 DO
  92.       task_switch;
  93.  
  94.   END;
  95.